package com.bls.cate;

import android.app.Application;
import android.content.Context;
import android.os.StrictMode;
import android.support.multidex.MultiDex;

import com.bls.blslib.base.BlsLibUtil;
import com.bls.cate.constant.Keys;
import com.bls.cate.xiaomi.XMUtil;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
import com.iflytek.cloud.SpeechUtility;

import com.tencent.bugly.Bugly;
import com.tencent.bugly.beta.Beta;

/**
 * 　　  () 　　　  ()
 * 　　  ( ) 　　　( )
 * 　　  ( ) 　　　( )
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　┻　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ——————————————————
 * Created by BinglingSu on 2017/12/20.
 */

public class CateApp extends Application {
    public static Context applicationContext;

    @Override
    public void onCreate() {
        super.onCreate();
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        applicationContext = getApplicationContext();
        BlsLibUtil.init(this, true);                                       //初始化BlsLib
        initBugly();                                                                                //初始化Bugly
        initFresco();                                                                               //初始化Fresco
        XMUtil.registerXMPush(this);                                                      //初始化XMPush
        XMUtil.settingXMPushId(this);                                                              //初始化XMPush 账号体系
        SpeechUtility.createUtility(CateApp.this, "appid=5ae3caf8");    //初始化讯飞语音系统
    }


    private void initFresco() {
        ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
                .setDownsampleEnabled(true)
                .build();
        Fresco.initialize(this, config);
    }

    private void initBugly() {
        //Beta.autoInit = true;
        Beta.autoCheckUpgrade = true;
        Beta.initDelay = 10000;
        Bugly.init(this, Keys.BUGLY_APP_ID, true);
    }


    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}
